package cn.zcx;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * description:1.打印一段日志信息到记事本文件（多行文件内容）中并保存到本地，
 * 然后分别用字符流与字节流去交换读取该日志的内容，并计算每读一行，不同的流之间相差的时间，以毫秒为单位进行计算。
 * author:zcx
 * lenovo
 * 时间：2022.02.11.15.57
 */
public class Reader1 {
    public static void main(String[] args) {
        var f=new File("D:\\1.txt");
         long tt=System.currentTimeMillis();
         Reader1(f);
         long mm=System.currentTimeMillis();
        System.out.println("字节流:"+(int)(mm-tt));
        long t1=System.currentTimeMillis();
        Reader2(new File("D:\\1.txt"));
        long t2=System.currentTimeMillis();
        System.out.println("字符流"+(int)(t2-t1));

    }
   static void Reader1(File file){
        try {
            FileInputStream fis=new FileInputStream(file);
            byte[] buf=new byte[1024];
            int len = 0;
            while((len = fis.read(buf))>0) {
                if(new String(buf).matches("\\n")){
                    //System.out.println(new StringReader(fis.toString()));
                break;
                }

            }
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
   static void Reader2(File file){
       try {
           BufferedReader br=new BufferedReader(new FileReader(file));
           byte[] buf=new byte[1024];
           int len=0;
            while (br.ready()){

                if(br.readLine().equals("\\n")){
                    //System.out.println(bufferedReader.readLine());
                    break;
                }
            }
           br.close();
       } catch (IOException e) {
           e.printStackTrace();
       }

   }
}
